<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class compraProducto extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    public function insertarCompra($idEstablecimiento, $impuesto, $total, $modoPago, $descripcion, $usuarioEncargado) {
        $query = "INSERT INTO compra_producto(id_establecimiento,fecha,impuesto,total_compra,usuario_encargado,modo_pago,descripcion) VALUES('$idEstablecimiento',DATE_ADD(now(), INTERVAL -5 HOUR),'$impuesto','$total','$usuarioEncargado','$modoPago','$descripcion');";
        return $this->db->query($query);
    }

    public function obtenerCompras($idReserva) {
        // $query = "SELECT vps.*,c.nombre nombrePersona,c.apellido, ps.nombre nombreProducto,ps.valor,ps.id_servicio, ps.id_categoria_producto, pv.cantidad   FROM venta_producto_servicio vps, cliente c, producto_servicio ps,producto_x_venta pv   where  vps.id_cliente=c.id_cliente AND  vps.id_venta_servicio=pv.id_venta_servicio AND ps.id_servicio=pv.id_servicio AND vps.id_reserva='$idReserva' ORDER BY fecha DESC";
        //   echo $query;
        return $this->db->query($query)->result();
    }

    public function obtenerCompraById($idCompra, $idEstablecimiento) {
        $query = "select * from compra_producto where id_compra='$idCompra' and id_establecimiento='$idEstablecimiento'";
        return $this->db->query($query)->result();
    }

    public function eliminarCompra($idCompra, $idEstablecimiento) {
        $query = "DELETE  FROM compra_producto  where id_compra='$idCompra' AND id_establecimiento='$idEstablecimiento' ";
        //echo $query;
        return $this->db->query($query);
    }

    public function actualizarEstatus($idCompra, $estatus, $modopago) {
        $query = "update compra_producto set estatus='$estatus', modo_pago='$modopago' where id_compra='$idCompra' AND id_establecimiento='{$_SESSION["establecimiento"]["id_establecimiento"]}'";
        //echo $query;
        return $this->db->query($query);
    }

    public function query($query) {
        // echo $query;
        return $this->db->query($query)->result();
    }

    public function obtenerComprasTotales($idEstablecimiento, $filasPorPagina, $inicio, $criterios) {
        $query = "Select cp.*,
                    ps.nombre nombre_producto,
                    pc.cantidad,
                    u.nombre_completo,
                    cps.nombre nombre_categoria
                    from producto_x_compra pc,compra_producto cp,producto_servicio ps, usuario u,categoria_producto_servicio cps
                    where 
                    cp.usuario_encargado=u.id_usuario AND
                    pc.id_servicio=ps.id_servicio AND
                    pc.id_compra=cp.id_compra AND
                    cps.id_categoria_producto=ps.id_categoria_producto AND
                    cp.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['categoria'])) ? " AND ps.id_categoria_producto='{$criterios['categoria']}'" : " ";
        $query.=(!empty($criterios['producto'])) ? "AND ps.id_servicio='{$criterios['producto']}'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND cp.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND cp.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND cp.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['usuario'])) ? " AND u.id_usuario = '{$criterios['usuario']}'" : " ";
        $query.=" order by cp.fecha DESC,ps.nombre ASC LIMIT $inicio,$filasPorPagina";
        //  echo $query;
        return $this->db->query($query)->result();
    }

    public function obtenerResumenComprasTotales($idEstablecimiento, $criterios) {
        $query = "Select COALESCE(sum(cp.total_compra),0) total, COALESCE(sum(pc.cantidad),0) cantidad_productos
                    from producto_x_compra pc,compra_producto cp,producto_servicio ps, usuario u,categoria_producto_servicio cps
                    where 
                    cp.usuario_encargado=u.id_usuario AND
                    pc.id_servicio=ps.id_servicio AND
                    pc.id_compra=cp.id_compra AND
                    cps.id_categoria_producto=ps.id_categoria_producto AND
                    cp.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['categoria'])) ? " AND ps.id_categoria_producto='{$criterios['categoria']}'" : " ";
        $query.=(!empty($criterios['producto'])) ? "AND ps.id_servicio='{$criterios['producto']}'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND cp.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND cp.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND cp.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['usuario'])) ? " AND u.id_usuario = '{$criterios['usuario']}'" : " ";
        return $this->db->query($query)->result();
    }

    public function contarCompras($idEstablecimiento, $criterios) {
        $query = "Select count(*) cantidad
                    from producto_x_compra pc,compra_producto cp,producto_servicio ps, usuario u,categoria_producto_servicio cps
                    where 
                    cp.usuario_encargado=u.id_usuario AND
                    pc.id_servicio=ps.id_servicio AND
                    pc.id_compra=cp.id_compra AND
                    cps.id_categoria_producto=ps.id_categoria_producto AND
                    cp.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['categoria'])) ? " AND ps.id_categoria_producto='{$criterios['categoria']}'" : " ";
        $query.=(!empty($criterios['producto'])) ? "AND ps.id_servicio='{$criterios['producto']}'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND cp.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND cp.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND cp.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        return $this->db->query($query)->result();
    }

    public function getComprasByDia($dia, $idEstablecimiento) {
        $query = "select cp.*,u.nombre_completo from compra_producto cp,usuario u
                  where cp.id_establecimiento='$idEstablecimiento'
                  and u.id_usuario=cp.usuario_encargado and
                  cp.fecha >= '$dia 00:00:00' and
                  cp.fecha <= '$dia 23:59:59' order by cp.fecha";
        return $this->db->query($query)->result();
    }

}